# Filters added to this controller apply to all controllers in the application.
# Likewise, all the methods added will be available for all controllers.

class ApplicationController < ActionController::Base
  
  before_filter :verificaModo , :limpaCache
  
  
  helper :all # include all helpers, all the time
  protect_from_forgery # See ActionController::RequestForgeryProtection for details

  I18n.default_locale = :"pt-br"


  # Scrub sensitive parameters from your log
  # filter_parameter_logging :password
  protected

  #filtro de administrador
  def verificaAdministrador
    if session[:administrador_id].present?
      administrador_logado = Usuarios::Administrador.buscarAdministradores(session[:administrador_id])
      if administrador_logado.nil?
        flash[:erro] = 'Acesso negado!'
        if session[:jogador_id].present? #jogador tentando acessar area do administrador 
          redirect_to('/usuarios/jogador/listar') #volta para a tela inicial do jogador
        else
          redirect_to('/login/index')
        end
      end
    else
      flash[:erro] = 'Acesso negado!'
      redirect_to('/login/index')
    end
  end
  
  #filtro de jogador
  def verificaJogador
    if session[:jogador_id].present?
      jogador_logado = Usuarios::Jogador.buscarJogadores(:first, :conditions => {:id => session[:jogador_id]})
      if jogador_logado.nil?
        flash[:erro] = 'Acesso negado!'
        if session[:administrador_id].present?#administrador tentando acessar area do jogador 
          redirect_to('/usuarios/jogador/listar') #volta para a tela inicial do administrador
        else
          redirect_to('/login/index')
        end
      end
    else
      flash[:erro] = 'Acesso negado!'
      redirect_to('/login/index')
    end
  end

  def verificaModo
    configuracao = Ferramentas::Configuracao.obterConfiguracao
    @manutencao = false
    @manutencao_agendada = ""
    if configuracao[:prox_man]
      @manutencao_agendada = configuracao[:prox_man]
      manutencaoAgendada = Date.strptime(configuracao[:prox_man], '%d/%m/%Y')
      if manutencaoAgendada >= Date.today
        flash[:man_data] = "MANUTENÇÃO AGENDADA PARA O DIA: #{configuracao[:prox_man]}, RECOMENDA-SE NÃO JOGAR NESTA DATA."
      end
    end
    if configuracao[:modo] == "MANUTENCAO"
      @manutencao = true
      if not session[:administrador_id].present?
        flash[:man_mensagem] = "ESTAMOS EM MANUTENÇÃO, TENTE ACESSAR MAIS TARDE. DESCULPE O TRANSTORNO."
      end
      if session[:jogador_id].present?
        # Redireciona e desloga o jogador
        session[:jogador_id] = nil
        redirect_to '/login/index/'
      end
    end
  end
  
  def limpaCache
    response.headers["Pragma"] = "no-cache"
    response.headers["Cache-Control"] = "no-cache, no-store, max-age=0, must-revalidate"
  end
  
  def jogoEmAndamento
    if session[:jogoEmAndamento].present?
      if session[:jogoEmAndamento]
        redirect_to('/jogo/encerrar')
      end
    end
  end
  
end
